【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器 您所在的位置:网站首页 gitlab windows部署磁盘满了 【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器

【Gitlab+Windows Server】CI/CD实现自动化部署vue+springboot项目(若依前后端分离)到Windows Server服务器

2024-02-29 15:48| 来源: 网络整理| 查看: 265

原先的项目,在本地跑通后,需要开发人员手动打包。然后上传到服务器,重启项目服务。这部分的工作非常的繁琐。好在有了jenkins或者gitlab-ci这些自动化的工具。只要配置好。之后的项目开发就不用操心众多的繁琐部署步骤了。

由于开发习惯问题,我的项目正式环境并不是linux,并且学习gitlab过程中,发现大多数的文章都是以linux系统为例,所以我主要研究在windows server中的实现。算是补全生态吧。

一. 部署gitlab

我在腾讯云上买了一年80块的最低配置的linux云服务器做个人鼓捣用。当然阿里云也可以了,甚至本地的电脑也能当作gitlab的服务器。

部署方式相对简单,在宝塔面板上直接搜索 gitlab下载安装,我安装的版本是8.8.5(注意,后续的gitlab-runner.exe需要下载1.x版本,和gitlab配对,不然总是会注册失败)

部署完进入gitlab网址,注册号账号后,新建一个项目vue,点项目的设置,保存这两个值。

二.安装gitlab-runner

下载安装包 1.10.4 (注意:最新版本和gitlab 8.8.5不匹配,要下载较老的版本)https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v1.10.4/binaries/gitlab-ci-multi-runner-windows-amd64.exe

用远程工具进入正式项目的服务器。在C盘新建Gitlab-Runner文件夹,把安装包改名为gitlab-runner.exe放进去(不改也行,主要是原名太长了)。

1.打开cmd,cd到Gitlab-Runner。

2. 执行 .\gitlab-runner.exe install

3.执行 .\gitlab-runner.exe register 。这时候会提示你填写链接和授权码,把上面保存好的数据依次填进去。

4. 选择执行器的环境,由于我的项目没有用到docker,所以选的是shell。 还有提示你填写标签和备注什么的,这个随便填,后续也可以在生成的toml文件中改。

5. 启动runner : ./gitlab-runner.exe start

三.编写配置文件

这时候回到gitlab网页,项目中应该就能看到有一个可用的runner了。

vue项目

首先项目服务器要先安装node/npm等工具用来打包,最好和开发环境的版本号一致,不然可能出奇怪的问题

接下来在vue项目的目录中新建 gitlab-ci.yml文件

填写以下内容:

build: stage: build #标签,表示当前流水线处于哪个阶段     only:     - master #只有推送到master分支才执行     script:     - npm run build:prod #编译 - $CONFIG_PATH="C:\test\admin" - $TRUE_FALSE=(Test-Path $CONFIG_PATH) - echo $TRUE_FALSE - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH } - Copy-Item admin C:/test -Recurse -Force #把打包好的文件转移到项目所在的文件夹中

然后推送git到master分支。在gitlab页面上可以上看到runner的执行情况。一般情况下,就能正常执行了。

springboot项目

在springboot项目的目录中新建 gitlab-ci.yml文件

填写以下内容:

variables: TARGET: ruoyi-admin/target/ruoyi-admin.jar #定义一个变量,jar包的路径,方便后面用 build: #编译 stage: build only: - master script: #-P prod 是打包的时候识别 application-prod.yml文件,如果没有区分prod/local/dev之类,可以不写 - mvn clean package -P prod #执行maven打包, - $CONFIG_PATH="C:\test\ruoyi-admin.jar" - $TRUE_FALSE=(Test-Path $CONFIG_PATH) - if($TRUE_FALSE -eq "True"){ remove-Item -Recurse -Force $CONFIG_PATH }     #把打包好的文件转移到项目所在的文件夹中 - Copy-Item ruoyi-admin/target/ruoyi-admin.jar C:/test -Recurse -Force - cd C:/dali - C:/dali/run.bat #重启服务

四:踩坑 1.windows里面 执行 bat文件或者指令java -jar xxx.jar 的话。gitlab-runner会把启动的jar服务当作运行中的runner程序,所以状态一直是running运行中。如果推下一次的话,永远在排队。所以要换一种部署的方式。

使用winsw把jar注册为服务。

run.bat里面的语句改为

winsw.exe restart 2.git提交spring-boot报 The term 'mvn' is not recognized as the name of a cmdlet

原因是maven没有安装,安装完,配置到系统环境变量后。重启gitlab-runner.exe,再次提交。

3.git提交vue项目报 The term 'git' is not recognized as the name of a cmdlet, function, script file, or operable program

是因为git没有安装

4.gitlab中的runner控制台出现乱码 � 这类,要到服务器的控制面板设置编码为utf-8。设置完重启就可以了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有